SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TCCANJ_CL02_I03]    
/*-------------------------------------------------------*/    
/*---Empresa              : OFISIS S.A.                --*/    
/*---Cliente              : OFISIS S.A.                --*/    
/*---Sistema              : TESORERIA                  --*/    
/*---M®dulo               : Empresa                    --*/    
/*---Programa             : Grabaci®n Documentos       --*/    
/*                          Generadas x Letras         --*/    
/*                          por Canje                  --*/    
/*---       CTAS POR COBRAR            --*/      
/*---Script               : tccanj_p.sql               --*/    
/*---Nombre SP            : SP_TCCANJ_CL02_I03         --*/    
/*---Desarrollado por     : Eduardo Vivar Pomiano      --*/    
/*---Fecha Creaci®n       : 31/01/2000                 --*/    
/*---Base Datos           : Microsoft Sql Server       --*/    
/*---Versi®n              : 7.0                        --*/    
/*---Invoca a SP          :                            --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/    
/*---Comentarios                                       --*/    
/*---                                                  --*/    
/*---                                                  --*/    
/*-------------------------------------------------------*/    
/*-------------------------------------------------------*/    
/*---Drop Proc SP_TCCANJ_CL02_I03                      --*/    
/*---Grant Execute on SP_TCCANJ_CL02_I03 to public         --*/     
/*---SP_TCCANJ_CL02_I03 '01', 'OFISIS', '77902', '67110', '20100073723', 'NDE', '0001-0000000030',    
 '00400024', '001', 107.2, 107.2, 107.2, 107.2, 107.2, 'ACT', '2004/08/08', 'DOL', '001', 3.32,    
 35, 2, 37.2, '019', 'FAC', '0001-0000000087', '2004/03/01' */    
/*-------------------------------------------------------*/    
 @ISCO_EMPR        TD_VC_002,     
 @ISCO_USUA_MODI   TD_VC_008_USUA,    
 @ISCO_CNTA_ADMI   TD_VC_010,    
 @ISCO_CNTA_FINA   TD_VC_010,    
 @ISCO_CLIE        TD_VC_020,    
 @ISCO_TIPO_DOCU   TD_VC_003,    
 @ISNU_CANJ        TD_VC_008,    
 @ISCO_UNID_CONC   TD_VC_003,    
 @INIM_DOCU     TD_NU_016_004,    
 @INIM_SALD_DOCU   TD_NU_016_004,    
 @INIM_SALD_CONV   TD_NU_016_004,    
 @INIM_CANJ_MCAN   TD_NU_016_004,    
 @INIM_CANJ_MDOC   TD_NU_016_004,    
 @ISCO_ESTA_ORIG   TD_VC_003,    
 @IDFE_CANJ    TD_DT_001,    
 @ISCO_MONE    TD_VC_003,    
 @ISCO_UNID_CNTB   TD_VC_003,    
 @INFA_TIPO_CAMB   NUMERIC(9,4),    
 @INIM_GAST_BANC   TD_NU_016_004,    
 @INNU_CUOT    TD_IN_001,    
 @INIM_TOTA_INTR   TD_NU_016_004,    
 @ISCO_TIOP_NDEB   TD_VC_003,    
 @ISTI_DOCU_REFE   TD_VC_003,    
 @ISNU_DOCU_REFE   TD_VC_020,    
 @IDFE_DOCU_REFE   TD_DT_001,    
 @ISTI_AUXI_GADM   TD_VC_001,    
 @ISCO_AUXI_GADM   TD_VC_020,    
 @ISTI_AUXI_GFIN   TD_VC_001,    
 @ISCO_AUXI_GFIN   TD_VC_020,    
 @ISNU_DOCU_CLIE   TD_VC_020
	As
Declare    
   @VNNU_SECU     TD_IN_001,    
   @VNNU_SECU_CANJ  TD_IN_001,    
   @VSCO_ESTA_DOCU  TD_VC_003,    
   @VSCO_DOCU_LETR  TD_VC_003,     
   @VSST_CIER_DOCU  TD_VC_001,    
   @VNIM_DOCU     TD_NU_016_004,    
   @VNIM_BRUT_AFEC  TD_NU_016_004,    
   @VNIM_IMPT     TD_NU_016_004,    
   @VNPC_IMPT     NUMERIC(9,4),    
   @VSST_ASTO_RESU  TD_VC_001,    
   @VSNU_SERI  TD_VC_008    
     
 Begin Tran SP_TCCANJ_CL02_I03    
    
    
  IF @INIM_DOCU != @INIM_CANJ_MDOC    
 SET @VSST_CIER_DOCU = 'N'    
  ELSE    
 SET @VSST_CIER_DOCU = 'S'    
    
   Select @VSCO_DOCU_LETR = Null, @VSCO_ESTA_DOCU = Null    
    
  SELECT @VNPC_IMPT = PC_IMPT    
  FROM TTIMPT    
  WHERE CO_IMPT LIKE 'IG%'    
    
  SELECT @VNIM_DOCU = @INIM_TOTA_INTR + (@INIM_GAST_BANC * @INNU_CUOT)    
  SELECT @VNIM_IMPT = @VNIM_DOCU * @VNPC_IMPT / (100 + @VNPC_IMPT)    
  SELECT @VNIM_IMPT = ROUND(@VNIM_IMPT, 2)    
  SELECT @VNIM_BRUT_AFEC = @VNIM_DOCU - @VNIM_IMPT    
    
  SELECT @VNPC_IMPT = PC_IMPT    
  FROM TTIMPT    
  WHERE CO_IMPT LIKE 'IG%'    
    
  SELECT @VSST_ASTO_RESU = T2.ST_ASTO_RESU    
  FROM TDTIPO_OPER T1, TMOPRC_RESU T2    
  WHERE T1.CO_EMPR = @ISCO_EMPR    
  AND T1.CO_TIPO_OPER = @ISCO_TIOP_NDEB    
  AND T1.CO_EMPR = T2.CO_EMPR    
  AND T1.CO_OPRC_CNTB = T2.CO_OPRC_CNTB    
    
Select @VSNU_SERI = Substring(@ISNU_DOCU_CLIE, 1, Patindex('%-%', @ISNU_DOCU_CLIE)-1)    
    
/* Genero el œltimo correlativo para el documento Nota de D'bito */    
Exec SP_TTULTI_CORR_I01 @ISCO_EMPR, @ISCO_USUA_MODI, @ISCO_TIPO_DOCU, @VSNU_SERI, @ISNU_DOCU_CLIE OUTPUT  
    
Exec SP_TMDOCU_CL02_I01  @ISCO_EMPR,  @ISCO_USUA_MODI, @ISCO_TIPO_DOCU, @ISNU_DOCU_CLIE, @ISCO_CLIE,    
'', @ISCO_MONE, @ISCO_TIOP_NDEB, @ISCO_UNID_CONC,  @IDFE_CANJ,    
@ISCO_UNID_CNTB, @IDFE_CANJ, @IDFE_CANJ,  NULL, @INFA_TIPO_CAMB, @VNIM_BRUT_AFEC,    
0, 'IGV', @VNPC_IMPT, @VNIM_IMPT, @VNIM_DOCU, 0, @ISTI_DOCU_REFE, @ISNU_DOCU_REFE,    
@IDFE_DOCU_REFE,  '', NULL, NULL,    
NULL, NULL, @VSST_ASTO_RESU    
    
If Rtrim(@ISTI_AUXI_GADM) = ''    
  Select @ISTI_AUXI_GADM = NULL    
If Rtrim(@ISCO_AUXI_GADM) = ''    
  Select @ISCO_AUXI_GADM = NULL    
If Rtrim(@ISTI_AUXI_GFIN) = ''    
  Select @ISTI_AUXI_GFIN = NULL    
If Rtrim(@ISCO_AUXI_GFIN) = ''    
  Select @ISCO_AUXI_GFIN = NULL    
    
    
    
Insert Into TDDISC_CC02 (CO_EMPR, CO_CLIE, CO_TIPO_DOCU, NU_DOCU_CLIE, NU_CORR, CO_CENT_COST,     
 CO_CNTA_EMPR, ST_DIST, PO_DIST, IM_DIST, CO_ORDE_SERV, TI_AUXI_EMPR, CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)  
  
Values  (@ISCO_EMPR, @ISCO_CLIE, @ISCO_TIPO_DOCU, @ISNU_DOCU_CLIE, 1, @ISCO_AUXI_GFIN,    
 @ISCO_CNTA_FINA, 'M', Round(( (@VNIM_BRUT_AFEC - (@INIM_GAST_BANC * @INNU_CUOT)) /@VNIM_BRUT_AFEC)*100,2),     
 @VNIM_BRUT_AFEC - (@INIM_GAST_BANC * @INNU_CUOT),    
 NULL, @ISTI_AUXI_GFIN, @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE())    
    
   If @@error <> 0    
      Begin    
        Rollback tran    
    Return    
      End        
    
Insert Into TDDISC_CC02 (CO_EMPR , CO_CLIE, CO_TIPO_DOCU, NU_DOCU_CLIE, NU_CORR, CO_CENT_COST,     
 CO_CNTA_EMPR, ST_DIST, PO_DIST, IM_DIST, CO_ORDE_SERV, TI_AUXI_EMPR, CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)  
  
Values  (@ISCO_EMPR, @ISCO_CLIE, @ISCO_TIPO_DOCU, @ISNU_DOCU_CLIE, 2, @ISCO_AUXI_GADM,    
 @ISCO_CNTA_ADMI, 'M', 100 - Round(( (@VNIM_BRUT_AFEC - (@INIM_GAST_BANC * @INNU_CUOT)) /@VNIM_BRUT_AFEC)*100,2),    
 @INIM_GAST_BANC * @INNU_CUOT,    
 NULL, @ISTI_AUXI_GADM, @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE())    
    
   If @@error <> 0    
      Begin    
        Rollback tran    
    Return    
      End      
    
    
 Select  @VNNU_SECU_CANJ = Max(NU_SECU_CANJ) + 1    
 From  TDCANJ_CL02    
 Where  CO_EMPR = @ISCO_EMPR    
  AND CO_UNID_CONC = @ISCO_UNID_CONC    
  AND CO_CLIE = @ISCO_CLIE    
  AND NU_CANJ = @ISNU_CANJ    
  AND FE_CANJ = @IDFE_CANJ    
    
    
   Insert Into  TDCANJ_CL02 (CO_EMPR, CO_UNID_CONC, CO_CLIE, NU_CANJ, FE_CANJ, NU_SECU_CANJ, NU_ORDE_LETR,     
  NU_LETR_CLIE, CO_TIPO_DOCU, NU_DOCU_CLIE, IM_DOCU, IM_SALD_DOCU,     
  IM_SALD_CONV, IM_CANJ_MCAN, IM_CANJ_MDOC, ST_CIER_DOCU,     
  CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI, CO_ESTA_ORIG, ST_NDEB_AUTO)    
   Values ( @ISCO_EMPR, @ISCO_UNID_CONC, @ISCO_CLIE, @ISNU_CANJ, @IDFE_CANJ, @VNNU_SECU_CANJ, NULL,    
        NULL, @ISCO_TIPO_DOCU, @ISNU_DOCU_CLIE, @INIM_DOCU, @INIM_SALD_DOCU,     
     @INIM_SALD_CONV, @INIM_CANJ_MCAN, @INIM_CANJ_MDOC, @VSST_CIER_DOCU,     
  @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE(), @ISCO_ESTA_ORIG, 'S' )    
    
   If @@error <> 0    
      Begin    
        Rollback tran    
     Return    
      End        
    
    Exec SP_TTDOCU_CNTB_Q01 6, @VSCO_DOCU_LETR OutPut    
    
    Exec SP_TTTIES_DOCU_Q01 3, @VSCO_ESTA_DOCU OutPut    
    
--   IF @INIM_SALD_DOCU > @INIM_CANJ_MDOC     
   IF @INIM_SALD_DOCU > @INIM_CANJ_MCAN    
      Begin    
        SELECT @VSCO_ESTA_DOCU = @ISCO_ESTA_ORIG    
  SELECT @VSST_CIER_DOCU = 'N'    
      End     
   Else    
      Select @VSST_CIER_DOCU = 'S'    
    
Select @ISNU_DOCU_CLIE    
    
Commit Tran    
    
/*------------------------- Fin ------------------------------*/


GO
